//对于axios进行二次封装
import axios from "axios";
//引入进度条
import nprogress from 'nprogress';
//引入相关进度条的样式
import "nprogress/nprogress.css";


let requests = axios.create({
    //基础路径
    baseURL:"/api",
    //超时时间  5s
    timeout:5000,
});

//请求拦截器
requests.interceptors.request.use(
  (config) => {
    //请求前的操作

    //进度条开始
    nprogress.start();

    //token操作
    if(localStorage.getItem("token")){
      // console.log("是否进入token操作");
      config.headers.Authorization= localStorage.getItem("token");
    }

    // console.log("config对象",config)

    // config：配置对象，对象里面有header请求头
    return config;
  }
  
);

//响应拦截器
requests.interceptors.response.use((res)=>{
    //请求成功
    nprogress.done();
    // console.log("###########",res.data)
    return res.data;
},(error)=>{
  //温馨提示:某一天发请求,请求失败,请求失败的信息打印出来
  nprogress.done();
  console.log("拦截响应，错误是",error);
  //请求失败
  return Promise.reject(new Error(error));
});

export default requests;